package main

import "github.com/labstack/echo/v4"

// main
//
//	@Description: 通过状态码将响应渲染为 json 或者 xml 格式。
func main() {
	e := echo.New()

	e.GET("/user/json", jsonRes)
	e.GET("/user/xml", xmlRes)

	e.Start(":80")
}

// jsonRes
//
//	@Description: 返回json响应
//
// {
// "name": "John",
// "age": 20
// }
//
//	@param c
//	@return error
func jsonRes(c echo.Context) error {
	u := User{Name: "John", Age: 20}
	return c.JSON(200, u)
}

// xmlRes
//
//	@Description: 返回xml响应
//
// <User>
// <name>John</name>
// <age>20</age>
// </User>
//
//	@param c
//	@return error
func xmlRes(c echo.Context) error {
	u := User{Name: "John", Age: 20}
	return c.XML(200, u)
}

type User struct {
	Name string `json:"name" xml:"name" form:"name" query:"name"`
	Age  int    `json:"age" xml:"age" form:"age" query:"age"`
}
